﻿using System.ComponentModel;
using System;
using System.Collections;
using System.Collections.Generic;
namespace EstoqueUnifeiADO.Dados
{


    public partial class dsProdutos
    {
    }
}
namespace EstoqueUnifeiADO.Dados.dsProdutosTableAdapters
{
    public partial class PRODUTOTableAdapter
    {
        public void AtualizaQuantidade(decimal quantidade, int codproduto)
        {


        }
    }
    public partial class VIEWPRODUTOTableAdapter
    {
        [DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, false)]
        public int Delete(int Original_CODPRODUTO)
        {
            return new PRODUTOTableAdapter().Delete(Original_CODPRODUTO);
        }
        [DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, false)]
        public virtual int Update(int CODTIPO, string TITULO, string DESCRICAOFUNCIONAL, string DESCRICAOEMPENHO, string ELEMENTODESPESA, global::System.Nullable<int> CODMARCA, global::System.Nullable<int> CODUNIDADE, System.Nullable<bool> PERMANENTE, int Original_CODPRODUTO)
        {
            return new PRODUTOTableAdapter().UpdateSemQuantidade(CODTIPO, TITULO, DESCRICAOFUNCIONAL, DESCRICAOEMPENHO, ELEMENTODESPESA, CODMARCA, CODUNIDADE, PERMANENTE.GetValueOrDefault(), Original_CODPRODUTO);
        }
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
        [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
        [DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)]
        public virtual object InsertWithKey(int CODTIPO, string TITULO, string DESCRICAOFUNCIONAL, string DESCRICAOEMPENHO, string ELEMENTODESPESA, global::System.Nullable<int> CODMARCA, global::System.Nullable<int> CODUNIDADE, System.Nullable<bool> PERMANENTE)
        {
            return new PRODUTOTableAdapter().InsertWithKey(CODTIPO, TITULO, DESCRICAOFUNCIONAL, DESCRICAOEMPENHO, ELEMENTODESPESA, CODMARCA, CODUNIDADE, true, PERMANENTE.GetValueOrDefault());
        }
        [DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)]
        public dsProdutos.VIEWPRODUTODataTable Pesquisar(List<KeyValuePair<string, object>> pesquisa)
        {


            if (pesquisa.Count > 0)
            {
                dsProdutos.VIEWPRODUTODataTable dataTable = new dsProdutos.VIEWPRODUTODataTable();

                this.Adapter.SelectCommand = this.CommandCollection[0];

                for (int i = 0; i < pesquisa.Count; i++)
                {

                    if (i == 0)
                        this.Adapter.SelectCommand.CommandText += " WHERE ";
                    else
                        this.Adapter.SelectCommand.CommandText += " AND ";
                    switch (pesquisa[i].Key)
                    {
                        case "Titulo":
                            this.Adapter.SelectCommand.CommandText += "(PRODUTO.TITULO like @TITULO) ";
                            this.Adapter.SelectCommand.Parameters.AddWithValue("@TITULO", string.Format("%{0}%", pesquisa[i].Value));
                            break;
                        case "Descricao":
                            this.Adapter.SelectCommand.CommandText += "(PRODUTO.DESCRICAOFUNCIONAL LIKE @DESCRICAO OR " +
                                "PRODUTO.DESCRICAOEMPENHO LIKE @DESCRICAO) ";
                            this.Adapter.SelectCommand.Parameters.AddWithValue("@DESCRICAO", string.Format("%{0}%", pesquisa[i].Value));
                            break;
                        case "Marca":
                            this.Adapter.SelectCommand.CommandText += "(PRODUTO.CODMARCA = @MARCA) ";
                            this.Adapter.SelectCommand.Parameters.AddWithValue("@MARCA", pesquisa[i].Value);
                            break;
                        default:
                            break;
                    }

                }
                this.Adapter.Fill(dataTable);
                return dataTable;
            }
            else
                return null;
        }
    }
}
